package Modelo;

import java.util.Date;
import java.util.Vector;
import java.util.Calendar;

import Persistencia.AdministradorPersistenciaLineas;

public abstract class Linea {
	private int numero;
	private String tipoLinea;
	java.sql.Date fechaContrato; 
	//private Cliente cliente;
	private Plan plan;
	private Vector<Consumo> consumos;
	

public Linea(int numero, String tipoLinea, Plan plan) {
	this.numero = numero;
	this.tipoLinea = tipoLinea;
	java.util.Date utilDate = new java.util.Date();
	long lnMilisegundos = utilDate.getTime();
	this.fechaContrato = new java.sql.Date(lnMilisegundos);
	//this.cliente = cliente;
	this.plan = plan;
	this.consumos = new Vector<Consumo>();
	
}


public int getNumero() {
	return numero;
}

public String getTipoLinea() {
	return tipoLinea;
}

/*public Cliente getCliente() {
	return cliente;
}*/

public Plan getPlan() {
	return plan;
}

public String getFechaContratoString() {
	@SuppressWarnings("deprecation")
	String fechaContratoString = fechaContrato.toLocaleString(); 
	return fechaContratoString;
}


public void  addConsumo(Consumo unConsumo) {
	consumos.add(unConsumo);
}

 
public Vector<Consumo> getConsumos(){
	return this.consumos;
}

public Vector<Consumo> getConsumosDelPeriodo(Date mes, boolean facturados){
	Vector<Consumo> auxCons = new Vector<Consumo>();
	for (Consumo c: this.consumos){
		if (c.isFacturado()==facturados){
			if((c.getFecha().getMonth()==mes.getMonth())&&(c.getFecha().getYear()==mes.getYear())){
			
				auxCons.add(c);
			}
		}
	}		
	return auxCons;
}



public boolean isFacturable(){
	return !(this.getPlan().getNombre().equals("PREPAGO"));
}


public void insertConsumoALinea(Linea l)
{
AdministradorPersistenciaLineas.getInstancia().insertConsumoALinea(l);	
}


}

